package com.english.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 课时变动记录实体类
 * 记录课时变动历史，审计用途
 * 
 * @author wlq
 * @since 2025-08-05
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("lesson_log")
public class LessonLog {
    /**
     * 主键ID，自增长
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 学生ID，关联user表
     */
    @TableField("student_id")
    private Long studentId;
    
    /**
     * 变动值：正=增加，负=减少
     */
    @TableField("change_value")
    private Integer changeValue;
    
    /**
     * 类型:充值/课程/调整
     */
    @TableField("type")
    private ChangeType type;
    
    /**
     * 显示标题(小课辅导/课时充值等)
     */
    private String title;
    
    /**
     * 详细描述
     */
    private String description;
    
    /**
     * 操作时间
     */
    private Date time;
    
    /**
     * 操作管理员ID
     */
    @TableField("admin_id")
    private Long adminId;
    
    /**
     * 课时变动类型枚举
     */
    public enum ChangeType {
        RECHARGE("充值"),
        CLASS("课程"),
        ADJUSTMENT("调整");
        
        private final String description;
        
        ChangeType(String description) {
            this.description = description;
        }
        
        public String getDescription() {
            return description;
        }
    }
} 